1. Field of the Invention
Embodiments of the present invention relate to techniques for image processing. More specifically, embodiments of the present invention relate to a technique for providing caching in an image-processing system.
2. Related Art
Dramatic advances in computing technology have made it possible for computer systems to efficiently perform image-processing operations on large digital images. Such image-processing operations can involve: converting images from one file format to another, transforming images, or otherwise modifying the images. For example, an image can be converted from a frame of video encoded in an initial color-space into a cropped and reduced-size still image encoded in a different color-space. Additionally, an image can be converted from an abstract image representation (such as in equation form) into a concrete image representation (e.g., a set of bits representing the pixels that comprise the image) during an image-processing operation.
Unfortunately, developers who want to process images often have to use a number of different graphics technologies (i.e., low-level image processing software) to perform the specific operations which are required to complete a given image-processing task. In the example described above, the developer may have to use one graphics technology to extract a frame from a video to produce a still image, while another graphics technology is used to convert the image between color-spaces, and yet another graphics technology is used to transform the image.
Some developers have developed graphics technologies that provide large numbers of image-processing features so that developers are not forced to use multiple graphics technologies to perform a given image-processing task. These graphics technologies often perform certain types of image-processing operations well, but cannot perform other types of image-processing tasks because they are hindered by proprietary formats or do not support all the necessary operations. Furthermore, graphics technologies from different developers typically do not share a common interface, which can make it difficult to automate image-processing tasks which require more than one graphics technology.
Another difficulty with using these graphics technologies relates to the promulgation of new image representation types and/or image-processing steps. If a developer wants to perform an operation that was not available when a graphics technology was released or if the developer wants to perform an existing operation on a new image representation type, the developer can again be forced to rely on multiple graphics technologies.
Hence, what is needed is a system that provides mechanisms for processing images without the above-described problems.
Table 1 presents a listing of support classes within QC Image System in accordance with embodiments of the present invention.
Table 2 presents a listing of default image providers within QC Image System in accordance with embodiments of the present invention.
Table 3 presents a listing of default image converters within QC Image System in accordance with embodiments of the present invention. Table 4 presents a listing of default image exporters within QC Image System in accordance with embodiments of the present invention.